package com.neusoft.SPNursingHome.po;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.util.Date;

/**
 * 客户外出申请与审核记录实体类
 */
@TableName("outing_record")
public class OutingRecord {
    @TableId(value = "out_id", type = IdType.AUTO)
    /**
     * 外出记录ID (主键)
     */
    private Integer outId;

    /**
     * 客户ID (外键)
     */
    private Integer clientId;

    /**
     * 外出事由
     */
    private String outReason;

    /**
     * 外出时间
     */
    private Date outTime;

    /**
     * 预计返回时间
     */
    private Date expectReturnTime;

    /**
     * 实际返回时间
     */
    private Date returnTime;

    /**
     * 审批状态
     */
    private String outReviewStatus;

    /**
     * 审批时间
     */
    private Date outReviewTime;

    /**
     * 审批人ID (外键)
     */
    private Integer adId;

    /**
     * 审批人描述
     */
    private String outDescription;
    // ------------------- 以下为非数据库表字段 -------------------

    // 客户姓名，用于连表查询显示
    @TableField(exist = false)
    private String clientName;

    @TableField(exist = false)
    private String clientPhone;

    // 构造函数
    public OutingRecord() {
    }

    // Getters 和 Setters
    public Integer getOutId() {
        return outId;
    }

    public void setOutId(Integer outId) {
        this.outId = outId;
    }

    public Integer getClientId() {
        return clientId;
    }

    public void setClientId(Integer clientId) {
        this.clientId = clientId;
    }

    public String getOutReason() {
        return outReason;
    }

    public void setOutReason(String outReason) {
        this.outReason = outReason;
    }

    public Date getOutTime() {
        return outTime;
    }

    public void setOutTime(Date outTime) {
        this.outTime = outTime;
    }

    public Date getExpectReturnTime() {
        return expectReturnTime;
    }

    public void setExpectReturnTime(Date expectReturnTime) {
        this.expectReturnTime = expectReturnTime;
    }

    public Date getReturnTime() {
        return returnTime;
    }

    public void setReturnTime(Date returnTime) {
        this.returnTime = returnTime;
    }

    public String getOutReviewStatus() {
        return outReviewStatus;
    }

    public void setOutReviewStatus(String outReviewStatus) {
        this.outReviewStatus = outReviewStatus;
    }

    public Date getOutReviewTime() {
        return outReviewTime;
    }

    public void setOutReviewTime(Date outReviewTime) {
        this.outReviewTime = outReviewTime;
    }

    public Integer getAdId() {
        return adId;
    }

    public void setAdId(Integer adId) {
        this.adId = adId;
    }

    public String getOutDescription() {
        return outDescription;
    }

    public void setOutDescription(String outDescription) {
        this.outDescription = outDescription;
    }

    public String getClientName() {
        return clientName;
    }

    public void setClientName(String clientName) {
        this.clientName = clientName;
    }

    public String getClientPhone() {
        return clientPhone;
    }

    public void setClientPhone(String clientPhone) {
        this.clientPhone = clientPhone;
    }

    @Override
    public String toString() {
        return "OutingRecord{" +
                "outId=" + outId +
                ", clientId=" + clientId +
                ", outReason='" + outReason + '\'' +
                ", outTime=" + outTime +
                ", expectReturnTime=" + expectReturnTime +
                ", returnTime=" + returnTime +
                ", outReviewStatus=" + outReviewStatus +
                ", outReviewTime=" + outReviewTime +
                ", adId=" + adId +
                ", outDescription='" + outDescription + '\'' +
                '}';
    }
}
